﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Dreamz
{
    public class Rum11
    {
        static public void Apply()
        {
           //Adds methods invoked through events, in this case taking cube/map/vegetable/mildew
            GameEngine.S.World[4, 3].Items["cube"].OnTake += new EventHandler(TakeCube);
            GameEngine.S.World[4, 3].Items["map"].OnTake += new EventHandler(TakeMap);
            GameEngine.S.World[4, 3].Items["vegetable"].OnTake += new EventHandler(TakeVegetable);
            GameEngine.S.World[4, 3].Items["mildew"].OnTake += new EventHandler(TakeMildew);
        }
        static public void TakeVegetable()
        {
           //This gives the sad news that your character have died, and resets the game.
            UI.Console.Clear();
            UI.Console.Write("[GAME OVER]", ConsoleColor.Red);
            UI.Console.WriteLine(@"As you reach out to touch the vines, they snap shut around you, strangling you slowly.");
            UI.Draw();
            Console.ReadKey();
            Console.Clear();
            GameEngine.S.Menu();
        }
        static public void TakeMildew()
        {
           //This gives the sad news that your character have died, and resets the game.
            UI.Console.Clear();
            UI.Console.Write("[GAME OVER]", ConsoleColor.Red);
            UI.Console.WriteLine(@"As you try to grab hold of the mildew, you accidentaly burst a sack full of poison.
During the next ten hours, you rot from the inside");
            UI.Draw();
            Console.ReadKey();
            Console.Clear();
            GameEngine.S.Menu();
        }
        static public void TakeMap()
        {
           //Adds a new use function showing the map. Also describes how to find it.
            GameEngine.S.World[4, 3].Items["trapdoor"].Description = "You slowly put your eye to the slit at the edge of the trapdoor, and then rush back, afraid of monsters.";
            GameEngine.S.Player.Inventory["map"].OnUse += new EventHandler(Map);
            UI.Console.Write("You may now [use] the map to see where you are.");
        }
        static public void TakeCube()
        {
           //Takes the Cube, changes the descriptions mentioning the cube.
            GameEngine.S.World[4, 3].Items["table"].Description = "This table grows more and more unstable, some greedy bastard stole its footpad.";
            GameEngine.S.Player.Inventory["cube"].OnUse += new EventHandler(UseCube);
        }
        static public void UseCube()
        {
            //This method is for inserting the cube into a doorway, works together with UseTriangle, UseBall to open the door.
            Rum9.InsertShape("cube");
            GameEngine.S.Player.Inventory.Remove("cube");
        }
        static public void Map()
        {
           //The code for showing the map.
            Console.Clear();
            GameEngine.S.ScreenDrawer.BufferDraw(@"/////////////.//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////b   A////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////$b  Vb.//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////$$b  V$$b.//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////'$$b. V$$$$oooooooo./////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////'$$P* V$$$$$''**$$$b.///.o$$P////////////////////////////////////############/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////' .oooZ$$$$b..o$$$$$$$$$$$$C/////////////////////////////////////##        ##/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////.$$$$$$$$$$$$$$$$$$$$$$$$$$$b.///////////////////////////////////##        ##/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$///////////////////////////////////##        ##/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////.o$$$o$$$$$$$$P''*$$$$$$$$$P'''*$$$P///////////////////////////////////##        ##/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////.$$$**$$$$P'q$C    '$$$b        .$$P//////////////////////////###############  #####////////############/////////////////////////////////////////////////////////////////////////////////////////////////
///////$$P   '$$$b  '$ . .$$$$$b.*'//////////////////////////////////##        ##        ############        ##/////////////////////////////////////////////////////////////////////////////////////////////////
///////$$      $$$.     '***$$$$$$$b. A./////////////////////////////##                  ##                  ##/////////////////////////////////////////////////////////////////////////////////////////////////
//////V$b   . Z$$b.  .       '*$$$$$b$$://///////////////////////////##                  ##                  ##/////////////////////////////////////////////////////////////////////////////////////////////////
////////V$$.  '*$$$b.  b.         '$$$$$/////////////////////////////##        ##        ############        ##/////////////////////////////////////////////////////////////////////////////////////////////////
/////////'$$b     '*$.  *b.         '$$$b////////////////////////////###############  #####////////############/////////////////////////////////////////////////////////////////////////////////////////////////
///////////'$$b.     'L  '$$o.        '*'/////.ooo..///////////////////////////##        ##/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////'*$$o.        '*$$o.         /.o$$$$$$$$b.////////////////////////##        ##/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////'*$$b.       '$$b.       .$$$$$*'///''*.//////////////////////##        ##/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////'*$$o.      '$$$o.    $$$$$'///////////////////////////////##        ##////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////'$$o       '$$$b.  '$$$$///...oo.. /#########################..#########################/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////'$b.      '$$$$b. '$$$$$$$P*'''''/##        ##        ##        ##        ##        ##/////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////./'$$       '$$$$b  '$$$$P'////////##                                                ##/////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////L.'$.      .$$$$$.  $$$$//////////##                                                ##/////////////////////////////////////////////////////////////////////////////////////////////////
//////////.. /////////////$$$;      o$$$$$$  $$$$//////////##        ##        ##        ##        ##        ##/////////////////////////////////////////////////////////////////////////////////////////////////
///////. $.l  ////////////'$$'    .$$$$$$$P  $$$P//////////###############  ##################  ###############/////////////////////////////////////////////////////////////////////////////////////////////////
/////.I .$b b '. 'P //////      .P*''*$$$$;  $$$/////////////////////##        ##////////##        ############/////////////////////////////////////////////////////////////////////////////////////////////////
///.$P  $$o '. '.  ./////   ' .'      $$$$   $$;/////////////////////##        ##////////##        ###      ###/////////////////////////////////////////////////////////////////////////////////////////////////
//.$$;  $$$. 'A '$. './      '       o$$$P  .$P//////////////////////##        ##////////##        ##        ##/////////////////////////////////////////////////////////////////////////////////////////////////
/.$$$b  $$$$. *$. '$$$$o.          .$$$$P   $'///////////////////////##        ##////////##        ##        ##/////////////////////////////////////////////////////////////////////////////////////////////////
.$$$$$  $$$$$. '$$o.'**$$$$o.'  .o$$$$P'    P////////////////////////#########################  ########  #####/////////////////////////////////////////////////////////////////////////////////////////////////
$$P'$$b $$$$$$o  '*$$$$boooooc$$$$$$$P'   . ///////////////////////////////////##        ##        ##        ##/////////////////////////////////////////////////////////////////////////////////////////////////
$$//$$$.'$$$'*$$.   '$$$$$$$$$$$$$$$$C  .o'////////////////////////////////////##                            ##/////////////////////////////////////////////////////////////////////////////////////////////////
I'//$P'$.'$$b. '*$.    '**$$$$$*'*$$$$$$$'/////////////////////////////////////##                            ##/////////////////////////////////////////////////////////////////////////////////////////////////
'///$//'$.'$$$.   '''    //////////'*$$*///////////////////////////////////////##        ##        ##        ##/////////////////////////////////////////////////////////////////////////////////////////////////
////$.///'.'$$$$o       ///////////////////////////////////////////////////////###############  ###############/////////////////////////////////////////////////////////////////////////////////////////////////
////'I///////'$$$$b. .   ////////////////////////////////////////////////////////////////##        ##///////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////'$$$b.'$o.///////////////////////////////////////////////////////////////##        ##///////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////'*$$.'$$$o.////////////////////////////////////////////////////////////##        ##///////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////'$$o $$$$b.//////////////////////////////////////////////////////////##        ##///////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////'$$o'$$$$$b.////////////////////////////////////////////////////////############///////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////'$$.'$$$**$o//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////'$$.$$$./'$$/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////$$; $$$o./'$.///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////'$: $$/'*o//'.//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////L///$$ $P////l//'./////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////$./.$$ $;//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////;$.$$P $///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////'$$$$ P'///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////$$$;:///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////$$P///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////o$P////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////P/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////I'/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////"
                , 0, 0, ConsoleColor.DarkCyan);
            GameEngine.S.ScreenDrawer.BufferDraw("You are at the blinking box. Press any button to return to game.", 30, 49);
            GameEngine.S.ScreenDrawer.Present();
            Console.SetCursorPosition(64 + GameEngine.S.Player.X * 10, Console.WindowHeight - (22 + GameEngine.S.Player.Y * 5));
            // Adds the blinking indicator that shows your current position.
            Console.CursorSize = 100;
            Console.ReadKey();
            Console.CursorSize = 10;
        }
    }
}
